﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EstabelecimentoWS;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.UtilidadesWs;
using System.ComponentModel;
using System.ServiceModel.Channels;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class PerfilEstabelecimento : System.Web.UI.Page
    {
        Utilizadades_WS util = new Utilizadades_WS();

        ObjetoEstabelecimento estabelecimento = new ObjetoEstabelecimento();
        PubClub_Estabelecimento_WS webServiceEstabelecimento = new PubClub_Estabelecimento_WS();
        UF uf = new UF();
        Cidade cidade = new Cidade();
        BindingList<Cidade> listaCidade;
        BindingList<UF> listaUF;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Estabelecimento"] == null)
            {
                Response.Redirect("Login.aspx");

            }
            else
            {
                estabelecimento = webServiceEstabelecimento.GetEstabelecimento(Convert.ToInt32(Session["Estabelecimento"]));

            }

            if (Page.IsPostBack == false)
            {
                textBoxBairro.Text = estabelecimento.Bairro;
                textBoxBairro.Enabled = false;

                textboxCEP.Text = estabelecimento.CEP;
                textboxCEP.Enabled = false;

                textBoxCNPJ.Text = estabelecimento.CNPJ;
                textBoxCNPJ.Enabled = false;

                textBoxComplemento.Text = estabelecimento.Complemento;
                textBoxComplemento.Enabled = false;

                textBoxEmail.Text = estabelecimento.EmailContato;
                textBoxEmail.Enabled = false;

                textBoxNomeFantasia.Text = estabelecimento.NomeFantasia;
                textBoxNomeFantasia.Enabled = false;

                textBoxNumeroRua.Text = estabelecimento.Numero;
                textBoxNumeroRua.Enabled = false;

                textBoxRazaoSocial.Text = estabelecimento.RazaoSocial;
                textBoxRazaoSocial.Enabled = false;

                textBoxRua.Text = estabelecimento.Rua;
                textBoxRua.Enabled = false;

                textBoxTelefone.Text = estabelecimento.TelefoneContato;
                textBoxTelefone.Enabled = false;

                textBoxNomeContato.Text = estabelecimento.NomeContato;
                textBoxNomeContato.Enabled = false;

                textBoxSenhaAntiga.Enabled = false;
                textBoxSenhaNova.Enabled = false;
                textBoxSenhaNova2.Enabled = false;
                BtCancelar.Enabled = false;
                BtSalvarAlteracao.Enabled = false;
                BtSalvarNovaSenha.Enabled = false;

                listaUF = new BindingList<UF>(util.Get_UFs());

                for (int i = 0; i < listaUF.Count; i++)
                {
                    ListItem li = new ListItem();
                    li.Text = listaUF[i].Nome;
                    li.Value = listaUF[i].Id.ToString();
                    DdEstado.Items.Add(li);
                }

                cidade = util.Get_Cidade(estabelecimento.CidadeId);
                uf = util.Get_UF(cidade.UF_Id);
                DdEstado.SelectedValue = uf.Id.ToString();
                DdEstado.Enabled = false;

                listaCidade = new BindingList<Cidade>(util.ListCidadesByEstadoId(cidade.UF_Id));

                for (int i = 0; i < listaCidade.Count; i++)
                {
                    ListItem li = new ListItem();
                    li.Text = listaCidade[i].Label;
                    li.Value = listaCidade[i].Id.ToString();
                    DdCidade.Items.Add(li);
                }

                DdCidade.SelectedValue = cidade.Id.ToString();
                DdCidade.Enabled = false;
            }

        }

        protected void DdEstado_SelectedIndexChanged(object sender, EventArgs e)
        {
            DdCidade.Items.Clear();
            listaCidade = new BindingList<Cidade>(util.ListCidadesByEstadoId(Convert.ToInt32(DdEstado.SelectedValue.ToString())));


            for (int i = 0; i < listaCidade.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaCidade[i].Label;
                li.Value = listaCidade[i].Id.ToString();
                DdCidade.Items.Add(li);

            }

        }

        protected void btAlterarClick(object sender, EventArgs e)
        {
            textBoxNomeContato.Enabled = true;
            textBoxNomeFantasia.Enabled = true;
            textBoxNumeroRua.Enabled = true;
            textBoxRazaoSocial.Enabled = true;
            textBoxRua.Enabled = true;
            textBoxTelefone.Enabled = true;
            textBoxBairro.Enabled = true;
            textboxCEP.Enabled = true;
            textBoxCNPJ.Enabled = true;
            textBoxComplemento.Enabled = true;
            textBoxEmail.Enabled = true;
            DdCidade.Enabled = true;
            DdEstado.Enabled = true;
            BtSalvarAlteracao.Enabled = true;

        }

        protected void btAlterarSenhaClick(object sender, EventArgs e)
        {
            textBoxSenhaAntiga.Enabled = false;
            textBoxSenhaNova.Enabled = false;
            textBoxSenhaNova2.Enabled = false;
            BtSalvarNovaSenha.Enabled = true;
        }

        protected void btSalvarAlteracaoClick(object sender, EventArgs e)
        {




        }

        protected void BtCancelar_Click(object sender, EventArgs e)
        {
            textBoxBairro.Text = estabelecimento.Bairro;
            textBoxBairro.Enabled = false;

            textboxCEP.Text = estabelecimento.CEP;
            textboxCEP.Enabled = false;

            textBoxCNPJ.Text = estabelecimento.CNPJ;
            textBoxCNPJ.Enabled = false;

            textBoxComplemento.Text = estabelecimento.Complemento;
            textBoxComplemento.Enabled = false;

            textBoxEmail.Text = estabelecimento.EmailContato;
            textBoxEmail.Enabled = false;

            textBoxNomeFantasia.Text = estabelecimento.NomeFantasia;
            textBoxNomeFantasia.Enabled = false;

            textBoxNumeroRua.Text = estabelecimento.Numero;
            textBoxNumeroRua.Enabled = false;

            textBoxRazaoSocial.Text = estabelecimento.RazaoSocial;
            textBoxRazaoSocial.Enabled = false;

            textBoxRua.Text = estabelecimento.Rua;
            textBoxRua.Enabled = false;

            textBoxTelefone.Text = estabelecimento.TelefoneContato;
            textBoxTelefone.Enabled = false;

            textBoxNomeContato.Text = estabelecimento.NomeContato;
            textBoxNomeContato.Enabled = false;

            listaUF = new BindingList<UF>(util.Get_UFs());

            for (int i = 0; i < listaUF.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaUF[i].Nome;
                li.Value = listaUF[i].Id.ToString();
                DdEstado.Items.Add(li);
            }

            cidade = util.Get_Cidade(estabelecimento.CidadeId);
            uf = util.Get_UF(cidade.UF_Id);
            DdEstado.SelectedValue = uf.Id.ToString();
            DdEstado.Enabled = false;

            listaCidade = new BindingList<Cidade>(util.ListCidadesByEstadoId(cidade.UF_Id));

            for (int i = 0; i < listaCidade.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaCidade[i].Label;
                li.Value = listaCidade[i].Id.ToString();
                DdCidade.Items.Add(li);
            }

            DdCidade.SelectedValue = cidade.Id.ToString();
            DdCidade.Enabled = false;

            BtSalvarAlteracao.Enabled = false;
            BtSalvarNovaSenha.Enabled = false;
            BtCancelar.Enabled = false;
        }

        protected void btAlerarClick(object sender, EventArgs e)
        {
            textboxCEP.Enabled = true;
            textBoxCNPJ.Enabled = true;
            textBoxComplemento.Enabled = true;
            textBoxEmail.Enabled = true;
            textBoxNomeContato.Enabled = true;
            textBoxNomeFantasia.Enabled = true;
            textBoxNumeroRua.Enabled = true;
            textBoxRazaoSocial.Enabled = true;
            textBoxRua.Enabled = true;
            textBoxTelefone.Enabled = true;
            DdCidade.Enabled = true;
            DdEstado.Enabled = true;
            BtCancelar.Enabled = true;
            BtSalvarAlteracao.Enabled = true;
        }

        protected void btSalvarAlteracao(object sender, EventArgs e)
        {
            estabelecimento.CNPJ = textBoxCNPJ.Text.Trim();
            estabelecimento.NomeFantasia = textBoxNomeFantasia.Text.Trim();
            estabelecimento.RazaoSocial = textBoxRazaoSocial.Text.Trim();
            estabelecimento.CEP = textboxCEP.Text.Trim();
            estabelecimento.EmailContato = textBoxEmail.Text.Trim();
            estabelecimento.CelularContato = textBoxTelefone.Text.Trim();
            estabelecimento.Bairro = textBoxBairro.Text.Trim();
            estabelecimento.CidadeId = Convert.ToInt32(DdCidade.SelectedValue.ToString());
            estabelecimento.Complemento = textBoxComplemento.Text.Trim();
            estabelecimento.Rua = textBoxRua.Text.Trim();
            estabelecimento.FileBinaryData = null;
            estabelecimento.FileName = "fileName";
            estabelecimento.FileSize = "fileSize";
            estabelecimento.Numero = textBoxNumeroRua.Text.Trim();
            estabelecimento.TelefoneContato = textBoxTelefone.Text.Trim();
            estabelecimento.NomeContato = textBoxNomeContato.Text.Trim();

            #region Verifica razão social em branco
            if (textBoxRazaoSocial.Text.Trim().Equals(""))
            {
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Text = "Razão Social deve ser preenchido.";
                LabelAviso.Visible = true;
                textBoxRazaoSocial.Focus();
                return;
            }
            else
            #endregion
                #region Verifica nome fantasia em branco
                if (textBoxNomeFantasia.Text.Trim().Equals(""))
                {
                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                    LabelAviso.Text = "Nome Fantasia deve ser preenchido.";
                    LabelAviso.Visible = true;
                    textBoxNomeFantasia.Focus();
                    return;
                }
                else
                #endregion
                    #region Verfica o email em branco
                    if (textBoxEmail.Text.Trim().Equals(""))
                    {
                        LabelAviso.ForeColor = System.Drawing.Color.Red;
                        LabelAviso.Text = "Email deve ser preenchido.";
                        LabelAviso.Visible = true;
                        textBoxEmail.Focus();
                    }
                    else
                    #endregion
                        #region Verifica numero do celular em branco
                        if (textBoxTelefone.Text.Trim().Equals(""))
                        {
                            LabelAviso.ForeColor = System.Drawing.Color.Red;
                            LabelAviso.Text = "Número do telefone deve ser preenchido.";
                            LabelAviso.Visible = true;
                            textBoxTelefone.Focus();
                        }
                        else
                        #endregion
                            #region Verifica CNPJ em branco
                            if (textBoxCNPJ.Text.Trim().Equals(""))
                            {
                                LabelAviso.ForeColor = System.Drawing.Color.Red;
                                LabelAviso.Text = "CNPJ deve ser preenchido.";
                                LabelAviso.Visible = true;
                                textBoxCNPJ.Focus();
                            }
                            else
                            #endregion
                                #region Verifica CEP em branco
                                if (textboxCEP.Text.Trim().Equals(""))
                                {
                                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                                    LabelAviso.Text = "CEP deve ser preenchida.";
                                    LabelAviso.Visible = true;
                                    textboxCEP.Focus();
                                }
                                else
                                #endregion
                                    #region verifica rua em branco
                                    if (textBoxRua.Text.Trim().Equals(""))
                                    {
                                        LabelAviso.ForeColor = System.Drawing.Color.Red;
                                        LabelAviso.Text = "Rua deve ser preenchida.";
                                        LabelAviso.Visible = true;
                                        textBoxRua.Focus();
                                    }
                                    else
                                    #endregion
                                        #region Verifica bairro em branco
                                        if (textBoxBairro.Text.Trim().Equals(""))
                                        {
                                            LabelAviso.ForeColor = System.Drawing.Color.Red;
                                            LabelAviso.Text = "Bairro deve ser preenchido.";
                                            LabelAviso.Visible = true;
                                            textBoxBairro.Focus();
                                        }
                                        #endregion
            #region verfica nome de contanto
            if (textBoxNomeContato.Text.Trim().Equals(""))
            {
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Text = "Nome de contato deve ser preenchido.";
                LabelAviso.Visible = true;
                textBoxNomeContato.Focus();
            }

            #endregion
            else
            {

                ObjetoRetornoEstabelecimento retornoWebService = webServiceEstabelecimento.UpdateEstabelecimento(
                    estabelecimento.EstabelecimentoId,
                    estabelecimento.CNPJ,
                    estabelecimento.RazaoSocial,
                    estabelecimento.NomeFantasia,
                    estabelecimento.NomeContato,
                    estabelecimento.TelefoneContato,
                    estabelecimento.CelularContato,
                    estabelecimento.EmailContato,
                    estabelecimento.Senha,
                    estabelecimento.CEP,
                    estabelecimento.Rua,
                    estabelecimento.Numero,
                    estabelecimento.Bairro,
                    estabelecimento.CidadeId,
                    estabelecimento.Complemento,
                    null,
                    "");

                if (retornoWebService.Sucesso == true)
                {
                    LabelAviso.Text = retornoWebService.Menssagem;
                    LabelAviso.ForeColor = System.Drawing.Color.Green;
                    LabelAviso.Visible = true;

                }
                else
                {
                    LabelAviso.Text = retornoWebService.Menssagem;
                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                    LabelAviso.Visible = true;
                }
            }



        }

        protected void btSalvarNovaSenhaClick(object sender, EventArgs e)
        {

            if (textBoxSenhaNova.Text.Equals(""))
            {
                LabelAviso.Text = "Preencha a nova senha.";
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Visible = true;
                textBoxSenhaNova.Focus();
            }
            else

                if (textBoxSenhaNova.Text.Equals(textBoxSenhaNova2.Text))
                {
                    estabelecimento.Senha = textBoxSenhaNova.Text;
                    ObjetoRetornoEstabelecimento retornoWebService = webServiceEstabelecimento.UpdateEstabelecimento(
                     estabelecimento.EstabelecimentoId,
                     estabelecimento.CNPJ,
                     estabelecimento.RazaoSocial,
                     estabelecimento.NomeFantasia,
                     estabelecimento.NomeContato,
                     estabelecimento.TelefoneContato,
                     estabelecimento.CelularContato,
                     estabelecimento.EmailContato,
                     estabelecimento.Senha,
                     estabelecimento.CEP,
                     estabelecimento.Rua,
                     estabelecimento.Numero,
                     estabelecimento.Bairro,
                     estabelecimento.CidadeId,
                     estabelecimento.Complemento,
                     null,
                     "");

                    if (retornoWebService.Sucesso == true)
                    {
                        LabelAviso.Text = "Senha alterada com sucesso.";
                        LabelAviso.ForeColor = System.Drawing.Color.Green;
                        LabelAviso.Visible = true;
                    }
                    else
                    {
                        LabelAviso.Text = retornoWebService.Menssagem;
                        LabelAviso.ForeColor = System.Drawing.Color.Green;
                        LabelAviso.Visible = true;
                    }

                }
                else
                {
                    LabelAviso.Text = "Senhas não conferem.";
                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                    LabelAviso.Visible = true;
                    textBoxSenhaAntiga.Focus();
                }

        }
    }
}